package com.cskaoyan.javase.homework.senior._06reflect;

import java.lang.reflect.Field;

/**
 * @description:
 * @author: songtao@cskaoyan.onaliyun.com
 **/

/*
设计一个方法如下，要求该方法能修改任意对象中，指定成员变量的值

public class Work1 {
 /**
  *
  * @param targetObj  要修改成员变量值的目标对象
  * @param fieldName  对象中要修改的成员变量的名字
  * @param newValue   要修改成员变量值的新值
  */
/*
public static void setAll(Object targetObj, String fieldName, Object newValue) {

        }
 */
public class Work1 {
    public static void setAll(Object targetObj, String fieldName, Object newValue) throws NoSuchFieldException, IllegalAccessException {
        // 拿到字节码文件对象
        Class c = targetObj.getClass();
        // 获取成员变量对象
        Field field = c.getDeclaredField(fieldName);
        // 赋值
        field.setAccessible(true);
        field.set(targetObj, newValue);

    }
}